Mutex<T>
std::sync
排他制御を動的に行う
スレッドセーフな可変参照を提供する
https://doc.rust-lang.org/std/sync/struct.Mutex.html
/mrsekut-book-4065301955/087
GPT-4.icon
Arc<T>との組み合わせ
可変データを共有
ArcとMutexの組み合わせは、スレッド間の安全な共有を可能にします。gpt-4.icon
code:rust
use std::sync::{Arc, Mutex};
use std::thread;
fn main() {
let data = Arc::new(Mutex::new(0));
let handles: Vec<_> = (0..10).map(|_| {
let data = Arc::clone(&data);
thread::spawn(move || {
let mut num = data.lock().unwrap();
*num += 1;
})
}).collect();
for handle in handles {
handle.join().unwrap();
}
println!("Final value: {:?}", *data.lock().unwrap());
}
Arc<Mutex<T>> のポイント:
Arcでスレッド間の共有
Mutexでデータの排他制御